﻿using System;
using System.Diagnostics.Contracts;

namespace Elderos.TextSearchers
{
public struct Position : IEquatable<Position>
{
	public Position(int start, int length) :this()
	{
		Start = start;
		Length = length;
	}

	public int Start { get; private set; }
	public int Length { get; private set; }


	public override string ToString()
	{
		return string.Format("[{0}, {1}]", Start, Length);
	}

	#region Implementation of IEquatable<Position>

	/// <summary>
	/// Указывает, равен ли текущий объект другому объекту того же типа.
	/// </summary>
	/// <returns>
	/// true, если текущий объект равен параметру <paramref name="other"/>, в противном случае — false.
	/// </returns>
	/// <param name="other">Объект, который требуется сравнить с данным объектом.</param>
	public bool Equals(Position other)
	{
		if (this.Start == other.Start && this.Length == other.Length)
			return true;
		return false;
	}

	#endregion
}
}
